package com.hzhc.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzhc.dto.BaseDto;
import com.hzhc.entity.TrainPlanDetail;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author dongcy
 * @date 2024/5/30 14:00
 * @description TrainPlanDetailVo
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class TrainPlanDetailVo extends BaseDto implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    /**
     * 班列计划id
     */
    private Integer planId;

    private String planName;//班列名称

    /**
     * 箱号
     */
    @Excel(name = "箱号")
    private String cntrNo;


    /**
     * 火车名(火车号,铁皮号)
     */
    @Excel(name = "车号")
    private String trainNumber;

    /**
     * (火车)股道
     */
    @Excel(name = "股道")
    private String strands;

    /**
     * 顺位号
     */
    @Excel(name = "顺位号")
    private Integer swId;

    /**
     * 运单号
     */
    @Excel(name = "运单号")
    private String billNo;

    /**
     * 施封号
     */
    @Excel(name = "施封号")
    private String sealNo;

    /**
     * 货名
     */
    @Excel(name = "品名")
    private String goods;

    /**
     * 箱尺寸
     */
    @Excel(name = "箱型")
    private String cntrSize;

    /**
     * 空重标志( E：空，F：重）
     */
    @Excel(name="空重(E:空箱;F:重箱)")
    private String efFlag;

    /**
     * 箱公司(箱主)
     */
    private String cntrMain;

    /**
     * 托运人重量
     */
    @Excel(name = "托运人重量")
    private Integer shipperWeight;

    /**
     * 承运人重量
     */
    @Excel(name = "承运人重量")
    private Integer carrierWeight;

    /**
     * 箱货重量
     */
    @Excel(name = "箱货重量")
    private Double weightPred;

    /**
     * 装货港(发站)
     */
    @Excel(name = "发站")
    private String zhPort;

    /**
     * 发货人
     */
    @Excel(name = "托运人")
    private String consigner;

    /**
     * 目的港(到站)
     */
    @Excel(name = "到站")
    private String mdPort;

    /**
     * 收货人
     */
    @Excel(name = "收货人")
    private String consignee;

    /**
     * 装(卸)车时间
     */
    private LocalDateTime zxTime;

    /**
     * 车上作业(默认0：否   1：是)
     */
    @Excel(name = "车上作业")
    private String workCarStr;

    /**
     * 车上作业(默认0：否   1：是)
     */
    private Integer workCar;

    @Excel(name="收货联系人")
    private String consigneeLxr;

    @Excel(name="收货联系方式")
    private String consigneeContact;

    /**
     * 创建时间
     */
    private LocalDateTime createtime;

    private String tallyUserName;//理货人姓名

    /**
     * 箱所在区域
     */
    private String area;

    /**
     * 箱所在贝位
     */
    private String bay;

    /**
     * 会员Id
     */
    private Long memberId;

    /**
     * 系统用户Id(创建人)
     */
    private Long userId;

    /**
     * 姓名(创建人)
     */
    private String userName;

    /**
     * 访问方式（移动端,pc端)
     */
    private String accesspath;

    private List<String> cntrNoList;//选择的箱号集合

    private Integer disable;//删除

    private Integer tallyFlag;//理货状态

    private String tallyFlagText;//理货状态

    private String trainPlanName;//装车计划名称

    private String trainPlanNo;//装车计划编号

    private String carNo;//车牌号

    /**
     * 导入错误信息
     */
    private String errorInfo;

    private Integer num;

    private String orderNo;//班列计划号

    private String orderNos;//

    private List<String> orderNoList;

    private String type;//班列类型

    private String signLx;//卸车清单导入标志

    @Excel(name = "分组")
    private String groupId;//分组id

    private Integer isZzt;//是否直装、提

    private String isZztText;//是否直装、提

    private List<String> YycntrList;//车辆预约箱号字符串集合

    private Integer zz;//直装 0；直提1

    private Integer isRectified;//是否待整改，0否，1是
    //铁路箱型
    private String tbCntr;

    private String zyCntr;
    //箱型描述
    private String selfUserType;

    /**
     * 下水令
     */
    @Excel(name="下水令")
    private String waterOrder;

    private String remark;//备注,显示为箱况

    private String shipName;//船名,通过箱子的委托预约号找到散改集计划的船名

    private String lhWeight;//理货重量

    private String endPort;

    private Integer teu;//自然箱

    private Integer shipVia;//发运方式

    private String shipViaName;//发运方式

    private String typeName;//箱类

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime finishTime;//完工时间

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime startTime;//完工开始时间

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime endTime;//完工结束时间

    private Integer companyId;//yzs客户公司id
    private String companyName;//yzs客户公司name

    private List<TrainPlanDetail> cntrList;//到达箱推送

    private String cntrWorkRemarkB;

    private Integer tsNum;//推送组别号

    private String sendBureau;//发局

    private String finalBureau;//到局

    private String lineOrYard;//专用线

    private String consignerLxr;//发货联系人

    private String consignerContact;//发货联系方式

    private String wgTrip;//批量完工车次(时间戳)

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime wgTime;//完工时间

    private String machineName;
    private Long declareId;//直提选择的车牌所属的卡口id

}


